import json
from django.http import JsonResponse, HttpResponse
from django.views.decorators.csrf import csrf_exempt  #方法装饰器
from django.utils.decorators import method_decorator  #类装饰器
from django.views import View

course_dict = {
        'name': '课程名称',
        'introduction': '课程介绍',
        'price': '0.11'
    }

#1 使用Django原生的FBV 编写API接口
@csrf_exempt #post请求需要用到一个装饰器,来取消csrf的限制
def course_list(request):
    if request.method=='GET':
        # return HttpResponse(json.dumps(course_dict),content_type='application/json')
        return JsonResponse(course_dict)  #效果跟上面等同

    if request.method=="POST":
        course=json.loads(request.body.decode('utf-8'))
        return JsonResponse(course,safe=False) #如果不是字典类型用safe=False
        # return HttpResponse(json.dumps(course),content_type='application/json')

#2 使用Django的CVB 编写API接口
@method_decorator(csrf_exempt,name='dispatch')
class CourseList(View):
    def get(self,request):
        return JsonResponse(course_dict)

    # @csrf_exempt  # post请求需要用到一个装饰器,来取消csrf的限制
    def post(self,request):
        course = json.loads(request.body.decode('utf-8'))
        return JsonResponse(course, safe=False) #如果不是字典类型用safe=False

#分页,排序,认证,权限,限流

#3 函数式 编写API接口













